pub fn odd_fibnacci_sum(threshold: u32) -> u32 {
    // TODO: 这里写逻辑
    //todo!()
    let target_fibnacci = fibnacci_vec(threshold);
    let mut sum = 0;
    for i in target_fibnacci {
        if i % 2 == 1 {
            sum = sum + i;
        }
    }
    sum
}

fn fibnacci_vec(max: u32) -> Vec<u32> {
    let mut v: Vec<u32> = Vec::new();
    let mut num = fibnacci_num(&v);
    while num <= max {
        v.push(num);
        num = fibnacci_num(&v);
    }
    v
}

fn fibnacci_num(fv: &Vec<u32>) -> u32 {
    let tmp = fv;
    if tmp.is_empty() {
        0
    } else if tmp.len() == 1 {
        1
    } else {
        let l = tmp.len();
        tmp.get(l - 2).unwrap() + tmp.get(l - 1).unwrap()
    }
}
